// pages/order/orderClass/orderClass.js
const app = getApp()
import config from '../../../utils/config.js';
import util from '../../../utils/util.js';
import Toast from '../../../vant/toast/toast';
import Dialog from '../../../vant/dialog/dialog';
import {
  orderModel
} from '../../../models/order';
const order = new orderModel();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    config:config,
    nvabarData: {
      showCapsule: 1, //是否显示左上角图标   1表示显示    0表示不显示
      title: '订单卡片归类',
      //  导航栏 中间的标题
    },
    height: app.globalData.height,
    navHeight: app.globalData.barheight,
    roleType:app.globalData.roleType,

    time:'',
    show: false,
    active: '',
    sactive: '',

    fLoad: false,
    page: 1, // 第几页
    size:10,
    endFlag: false, // 是否到最后
    dataList: [], // 列表
    
    shopOrderNo: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options.active);
      this.data.fLoad = true
      this.setData({
        time:options.time,
        active:options.active,
        sactive:options.sactive,
        orderStatus: options.active,
        updateOrderStatus: options.sactive==2?0:options.sactive,
      })
      this.getList();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.setData({
      roleType:app.globalData.roleType
    })
    if(!this.data.fLoad){
      this.data.allPage = 0, // 所有页数
      this.data.page = 1, // 第几页
      this.data.endFlag = false, // 是否到最后
      this.data.dataList = [], // 商品列表
      this.getList()
    }
    this.data.fLoad = false
  },

  onTab(e){
    var index = e.currentTarget.dataset.index
    this.setData({
      active: index
    })
  },
  onSTab(e){
    var index = e.currentTarget.dataset.index
    this.setData({
      sactive: index
    })
  },

  // 筛选
  onFilter(){
    this.setData({
      show: true
    })
  },
  onClose() {
    this.setData({
      show: false
    })
  },
  onSearch(){
    this.setData({
      orderStatus: this.data.active,
      updateOrderStatus: this.data.sactive==2?0:this.data.sactive,
      show: false,
      allPage: 0, // 所有页数
      page: 1, // 第几页
      endFlag: false, // 是否到最后
      dataList: [], // 订单列表
    })
    this.getList()
  },

  // 订单列表
  getList(){
    order.apiOrderPage({
      page: this.data.page,
      limit: 10,
      limitTimeStr: this.data.time,
      orderStatus: this.data.orderStatus,
      updateOrderStatus: this.data.updateOrderStatus
    }, res =>{
      if (res.list.length > 0) {
        var page = this.data.page;
        var endFlag = false;
        var allPage = res.allPage;
        if (page == allPage) {
          endFlag = true;
        } else {
          page += 1;
        }
        var dataList = this.data.dataList;
        if (page != 1) {
          dataList = dataList.concat(res.list);
        } else {
          dataList = res.list;
        }
        this.setData({
          dataList: dataList,
          endFlag: endFlag,
          page: page
        });
        console.log(this.data.dataList)
      }
    })
  },

  // 提交订单
  onSub: util.throttle(function (e) { 
    let id = e.currentTarget.dataset.id 
    wx.navigateTo({
      url: '/pages/order/orderSubmit/orderSubmit?id='+id+'&type=2',
    })
  }),
  //支付订单
  onPay: util.throttle(function (e) { 
    let shopOrderNo = e.currentTarget.dataset.id 
    this.data.shopOrderNo = shopOrderNo
    this.onWeixin();
  }),

  // 订单详情
  onDetail: util.throttle(function (e) { 
    let id = e.currentTarget.dataset.id 
    wx.navigateTo({
      url: '/pages/order/orderInfo/orderInfo?id='+id
    })
  }),

  // 假的微信支付
  // onWeixin(shopOrderNo){
  //   order.payNotifytest({
  //     shopOrderNo: shopOrderNo
  //   }, res => {
  //     if (res.code == 200) {
  //       Toast.success('支付成功');
  //     } else {
  //       util.msg(res.msg)
  //     }
  //   })
  // },

  // 微信支付
  onWeixin(){ 
    var openId = wx.getStorageSync('openid')
    order.releaseWXPayMs({
      groupNo: this.data.shopOrderNo,
      openId:openId
    }, res => {
      if (res.code == 200) {
        this.processPay(res.data)
      } else {
        util.msg(res.msg)
      }
    })
  },
  /* 小程序支付 */
  processPay: function (param) { // 调起支付
    var that = this
    wx.requestPayment({
      timeStamp: param.timeStamp,
      nonceStr: param.nonceStr,
      package: param.package,
      signType: param.signType,
      paySign: param.paySign,
      success: function (res) {
        console.log("wx.requestPayment返回信息", res);
        Toast.success('支付成功');
        that.data.allPage = 0, // 所有页数
        that.data.page = 1, // 第几页
        that.data.endFlag = false, // 是否到最后
        that.data.dataList = [], // 商品列表
        that.getList();
      },
      fail: function () {
        console.log("支付失败");
        Dialog.confirm({
          title: '支付失败',
          message: '支付遇到问题，请尝试重新支付',
          confirmButtonText: '重新支付',
          cancelButtonText: '取消'
        }).then(() => {
          that.onWeixin()
        }).catch(() => {
          // on cancel
          that.data.allPage = 0, // 所有页数
          that.data.page = 1, // 第几页
          that.data.endFlag = false, // 是否到最后
          that.data.dataList = [], // 商品列表
          that.getList();
        });
      },
      complete: function () {
        console.log("支付完成(成功或失败都为完成)");
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    let pages = getCurrentPages();
    let prevPage = pages[pages.length - 2];
    // 设置上一页不在onShow的时候重新加载数据，在本页设置刷新列表
    prevPage.data.fLoad = true
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.data.allPage = 0, // 所有页数
    this.data.page = 1, // 第几页
    this.data.endFlag = false, // 是否到最后
    this.data.dataList = [], // 商品列表
    this.getList()
    //模拟加载 		
    setTimeout(function () {		
      wx.hideNavigationBarLoading() //完成停止加载 			
      wx.stopPullDownRefresh() //停止下拉刷新 		
    }, 1500);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.endFlag) {
      util.msg('没有更多了~');
      return;
    } else {
      this.getList();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})